function which checks if A is diagonally dominant
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(in), | DIMENSION(:, :) | :: | A |
FUNCTION Diagonally_Dominant_Matrix(A) RESULT(diagonally_dominant) REAL(dp), DIMENSION(:, :), INTENT(IN) :: A LOGICAL :: diagonally_dominant REAL(dp) :: summation INTEGER :: i, N N = SIZE(A, 1) diagonally_dominant = .TRUE. DO i = 1, N summation = SUM(ABS(A(i, :) - A(i, i))) if (ABS(A(i, i)) < summation)THEN diagonally_dominant = .FALSE. EXIT END IF END DO END FUNCTION Diagonally_Dominant_Matrix